#include <bits/stdc++.h>
using namespace std;

class Solution {
public:
    bool check(int cnt[]){
        for(int i=0; i<26; ++i){
            if(cnt[i]!=0) return false;
        }
        return true;
    }
    vector<int> findAnagrams(string s, string p) {
        vector<int> ans;
        if(s.size() < p.size()) return ans;
        int cnt[26]{0};
        for(auto& chr:p) ++cnt[chr-'a'];
        int n=s.size();
        for(int i=0; i<p.size(); ++i){
            --cnt[s[i]-'a'];
        } 
        if(check(cnt)==true) ans.push_back(0);
        for(int i=p.size(); i<n; ++i){
            --cnt[s[i]-'a']; ++cnt[s[i-p.size()]-'a'];
            if(check(cnt)==true) ans.push_back(i-p.size()+1);
        }
        return ans;
    }
};